package com.xpsoft.oa.model.statistics;


import java.util.HashSet;
import java.util.Set;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

import com.google.gson.annotations.Expose;
import com.xpsoft.oa.model.system.AppUser;
import com.xpsoft.oa.model.system.FileAttach;

/**
 * MeetingEvaluation Base Java Bean, base class for the.oa.model, mapped directly to database table
 * 
 * Avoid changing this file if not necessary, will be overwritten. 
 *
 * TODO: add class/table comments
 */
public class MeetingEvaluation extends com.xpsoft.core.model.BaseModel {
	@Expose
    protected Long id;  
	@Expose
	protected String level;
	@Expose
	protected String achievement;
	protected AppUser createUser;
	protected java.util.Date createTime;
	protected MeetingApply meetingApply;
	@Expose
	protected Set<FileAttach> fileAttachs = new HashSet<FileAttach>();
	/**
	 * Default Empty Constructor for class MeetingEvaluation
	 */
	public MeetingEvaluation () {
		super();
	}
	
	/**
	 * Default Key Fields Constructor for class MeetingEvaluation
	 */
	public MeetingEvaluation (
		 Long in_id
        ) {
		this.setId(in_id);
    }

    

	/**
	 * 	 * @return Long
     * @hibernate.id column="id" type="java.lang.Long" generator-class="native"
	 */
	public Long getId() {
		return this.id;
	}
	
	/**
	 * Set the id
	 */	
	public void setId(Long aValue) {
		this.id = aValue;
	}	

	/**
	 * 	 * @return String
	 * @hibernate.property column="level" type="java.lang.String" length="255" not-null="false" unique="false"
	 */
	public String getLevel() {
		return this.level;
	}
	
	/**
	 * Set the level
	 */	
	public void setLevel(String aValue) {
		this.level = aValue;
	}	

	/**
	 * 	 * @return String
	 * @hibernate.property column="achievement" type="java.lang.String" length="65535" not-null="false" unique="false"
	 */
	public String getAchievement() {
		return this.achievement;
	}
	
	/**
	 * Set the achievement
	 */	
	public void setAchievement(String aValue) {
		this.achievement = aValue;
	}	


	public AppUser getCreateUser() {
		return createUser;
	}

	public void setCreateUser(AppUser createUser) {
		this.createUser = createUser;
	}

	public MeetingApply getMeetingApply() {
		return meetingApply;
	}

	public void setMeetingApply(MeetingApply meetingApply) {
		this.meetingApply = meetingApply;
	}
	public Set<FileAttach> getFileAttachs() {
		return fileAttachs;
	}

	public void setFileAttachs(Set<FileAttach> fileAttachs) {
		this.fileAttachs = fileAttachs;
	}

	/**
	 * 	 * @return java.util.Date
	 * @hibernate.property column="createTime" type="java.util.Date" length="19" not-null="false" unique="false"
	 */
	public java.util.Date getCreateTime() {
		return this.createTime;
	}
	
	/**
	 * Set the createTime
	 */	
	public void setCreateTime(java.util.Date aValue) {
		this.createTime = aValue;
	}	

	/**
	 * @see java.lang.Object#equals(Object)
	 */
	public boolean equals(Object object) {
		if (!(object instanceof MeetingEvaluation)) {
			return false;
		}
		MeetingEvaluation rhs = (MeetingEvaluation) object;
		return new EqualsBuilder()
				.append(this.id, rhs.id)
				.append(this.level, rhs.level)
				.append(this.achievement, rhs.achievement)
				.append(this.createUser, rhs.createUser)
				.append(this.createTime, rhs.createTime)
				.isEquals();
	}

	/**
	 * @see java.lang.Object#hashCode()
	 */
	public int hashCode() {
		return new HashCodeBuilder(-82280557, -700257973)
				.append(this.id) 
				.append(this.level) 
				.append(this.achievement) 
				.append(this.createUser) 
				.append(this.createTime) 
				.toHashCode();
	}

	/**
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
		return new ToStringBuilder(this)
				.append("id", this.id) 
				.append("level", this.level) 
				.append("achievement", this.achievement) 
				.append("createUser", this.createUser) 
				.append("createTime", this.createTime) 
				.toString();
	}



}
